home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Development / General / GCC 1.37.1r15 / Documents / BUGS next >
Text File  |  1993-04-20  |  3KB  |  101 lines

  1. KNOWN BUGS AND OTHER PROBLEMS WITH MPW GCC
  2.  
  3. -n is not implemented (actually, this is a feature!).
  4.  
  5. Terrible junk is created by saving/restoring about ULMULT and friends.
  6.  
  7. Document that MPW should be modified by changing HEXA 128 to be $00020000 from
  8. $00010000.
  9.  
  10. Multiple levels of function inlining seems to defeat frame pointer omission.
  11.  
  12. gCPlus is still a script rather than driver-based, slows it down.
  13.  
  14. Using -opt branch with asm files > 32000 lines causes an infinite loop, because
  15. asm warnings give negative line numbers, shorten ignores, and loop keeps finding
  16. warnings to try to process.
  17.  
  18. Should detect and warn if FPU not present, instead of crashing mysteriously.
  19.  
  20. Initializing a local variable that is a structure or array makes global data
  21. when it would be better not to.
  22.  
  23. Data copying should be able to use an inline dbra loop rather than calling
  24. memcpy always.
  25.  
  26. Need an option to return shorts instead of ints from functions declared to
  27. return shorts - similarly to what happens when a function is declared "pascal",
  28. but without the other effects.
  29.  
  30. Very long direct fns may exceed 25-arg limit on DC.Ws in asm code.
  31.  
  32. Using all 5 regs in a parameter pragma effectively disables the pragma.
  33.  
  34. gCPlus should use {CPlusScratch} as its temp folder.
  35.  
  36. When -finline-functions is used, not all needed symbols are created
  37. and imported.
  38.  
  39. Some sorts of conversions (such as double <-> extended) cause a crash in
  40. the reload phase.  Seems to be more common with optimization+SANE+extended
  41. floats, but has been observed in other situations also.
  42. Example (OK with -mc68881, fails without):
  43.     int n, i, arr[10];
  44.     float c, theta, tang;
  45.     test() {
  46.       for (i = 0; i < n; i++) {
  47.         tang = atan2 (cos (i * 2.0), sin (i * 2.0));
  48.         arr[i] = 50 * c * sin (tang);  }}
  49. Workaround: temp variables and multiple assignment statements seem to help.
  50.  
  51. #<symbol> sometimes appears as an operand (as when pointer arithmetic is being
  52. done on the address of an array), causing MPW Asm to report an error.
  53. Example:
  54.     extern char gline[100], *fooline;
  55.     short foo() { return fooline - gline; }
  56. Workaround: assign address to a temp pointer, then do operations on value of ptr.
  57.  
  58. -b option causes a failure when initializing some arrays of strings.
  59. Example: GCC compiling wordlist in c-parse.tab.c.
  60. Workaround: don't use -b when self-compiling.
  61.  
  62. Casted objects passed by address to pascal functions don't get converted.
  63.  
  64. Pointer to a function does not have the right sort of value
  65. Example:
  66.     void f();
  67.     void (*fp)() = f;
  68.     foo() { return *fp == f; }  /* returns 0, but should return 1 */
  69.  
  70. -mbg ch8 and -mbg <number> are not implemented.
  71.  
  72. Result from pascal fns goes to d0 then to final place, instead of being returned
  73. there directly.
  74.  
  75. Complains about mismatches between ptrs to chars and unsigned chars
  76. (Mac read() proto vs cccp.c, for instance).
  77.  
  78. -bigseg is not implemented. (should use -model xxx in asm)
  79.  
  80. -notonce is not implemented in cpp.
  81.  
  82. Buildgccstages should fail completely if any single build fails.
  83.  
  84. (The following are garbled reports recorded for the sake of completeness)
  85.  
  86. Incorrect code gen for C code defined as pascal fn returning structs?
  87.  
  88. Check on value of __VERSION__ ?
  89.  
  90. Ensure that -elems881 disabled if target is not a 680x0 (2.x only?)
  91.  
  92. Wrong output of dependency making, that it has correct quoting (single quotes?)?
  93.  
  94. Wrong profile stuff vs APPLE_C (should be MPW?)?
  95.  
  96. What does GCC do for 1.0 / 0.0 ?
  97.  
  98. Strength reduction bugs for floats??
  99.  
  100. inlining of functions vs float/double/extended?
  101.